Currently in the computer field, there is a generally recognized effort to develop computers that can process increasingly larger amounts of information at progressively higher speeds, but with lower cost and size. Presently, digital computing systems are available which can perform seven to ten million multiplications per second with some systems providing speeds of 10.sup.8 to 10.sup.9 multiplications per second and up to 64-bit accuracy. Unfortunately, the cost of such systems range in the millions of dollars. Similarly, analog optical computing systems have been proposed which, theoretically, operate at speeds far superior (10.sup.10 to 10.sup.18) to the aforementioned digital systems. However, these analog optical systems suffer from low accuracy, typically less than 11 bits. A method for multiplication of two integer numbers using binary representations, for example, positive real or 2's complement, of the integer by analog convolution has previously been suggested in the surface acoustic wave (SAW) and charge coupled device (CCD) areas of technology. Such a method offers high accuracy but also a limited throughput rate.
Existing analog optical computers are hardware efficient and extremely fast. They are, however, lacking in generality, typically performing only a single computation. Their accuracy has thus been limited by the output detector such that a dynamic range of a few thousand to one is typical. This corresponds to an accuracy of 10 to 12 bits.
In the digital processing community, there is a well-known trade-off in signal processing systems between processor speed, accuracy, and generality. Digital computer architects have found, for example, that the price for generality in highly parallel electronic processing structures include decreased speed, decreased efficiency utilization, and increased software requirements. The requirement of high accuracy also increases hardware complexity or decreases speed. As a consequence, considerable research in the digital community has focused on more efficient/general purpose computing methods and associated structures. The result has been the VHSIC program with its emphasis on systolic array structures, which are capable of many matrix-or array-oriented algebraic signal processing operations. This work is of particular importance since it has been recently shown, for example, that a majority of the signal processing tasks can be reduced to a common set of basic matrix operations.
The present invention provides a binary optical computer capable of performing matrix/vector computations, which implements a method of processing that employs a systolic processing format which couples the speed of optics with the general purpose programmability of systolic arrays. As a result, speed, accuracy and generality are maximized.